﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace MvcAtletIS.Models
{
    [MetadataType(typeof(CompetitorsMetaData))]
    public partial class Competitors
    {
        public string FullName
        {
            get 
            {
                return this.Surname + " " + this.Firstname;
            }
        }

        public bool bImage
        {
            get
            {
                string path = string.Empty;
                path = System.IO.Path.Combine("~/Content/competitors/", this.ID.ToString() + ".jpg");
                path = System.Web.HttpContext.Current.Server.MapPath(path);

                if (System.IO.File.Exists(path))
                    return true;
                else
                    return false;
            }
        }
    }

    public class CompetitorsMetaData
    {
        [DisplayName("Meno")]
        [Required(ErrorMessage = "Meno je povinný údaj.")]
        public string Firstname { get; set; }

        [DisplayName("Priezvisko")]
        [Required(ErrorMessage = "Priezvisko je povinný údaj.")]
        public string Surname { get; set; }

        [DisplayName("Dátum narodenia")]
        [DataType(DataType.Date)]
        [Required(ErrorMessage = "Dátum narodenia je povinný údaj.")]
        public DateTime Birthdate { get; set; }

        [DisplayName("Pohlavie")]
        [Required(ErrorMessage = "Pohlavie je povinný údaj.")]
        [StringLength(1, ErrorMessage = "Max. dĺžka je jeden znak.")]
        public string Sex { get; set; }

        [DisplayName("ID klubu")]
        [Required(ErrorMessage = "ID klubu je povinný údaj.")]
        public string ClubId { get; set; }

        [DisplayName("ID krajiny")]
        [Required(ErrorMessage = "ID krajiny je povinný údaj.")]
        public string CountryId { get; set; }

        [DisplayName("Je pretekár")]
        [DefaultValue(true)]
        public bool Competitor { get; set; }

        [DisplayName("Trénerská trieda")]
        [StringLength(5, ErrorMessage = "Max. dĺžka je päť znakov.")]
        public string CoachClass { get; set; }

        [DisplayName("Rozhodcovská trieda")]
        [StringLength(5, ErrorMessage = "Max. dĺžka je päť znakov.")]
        public string RefereeClass { get; set; }

        [DisplayName("Aktívna")]
        [DefaultValue(true)]
        public bool Active { get; set; }

        [DisplayName("Synch.")]
        [DefaultValue(true)]
        public bool Sync { get; set; }
    }
}